// import com.alibaba.druid.sql.ast.SQLExpr*;
// import com.alibaba.druid.sql.ast.SQLName*;
// import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem;
// import com.alibaba.druid.sql.dialect.mysql.ast.MySqlObjectImpl;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
#pragma once
#include "../../../../../sql/dialect/mysql/ast/MySqlObjectImpl.h"
#include "../../../../../sql/ast/statement/SQLAlterTableItem.h"

class SQLName;
class SQLExpr;

class MySqlAlterTableAlterColumn :virtual public MySqlObjectImpl, virtual public SQLAlterTableItem
{
public:
  SQLName_ptr column;

  BOOL_ptr dropDefault;
  SQLExpr_ptr defaultExpr;

  SHAREDOBJECT(MySqlAlterTableAlterColumn);
  // @Override
  void accept0(MySqlASTVisitor_ptr visitor) override;

  BOOL_ptr isDropDefault();

  void setDropDefault(BOOL_ptr dropDefault);

  SQLExpr_ptr getDefaultExpr();

  void setDefaultExpr(SQLExpr_ptr defaultExpr);

  SQLName_ptr getColumn();

  void setColumn(SQLName_ptr column);
};
